1. Technical Field
This invention relates generally to audio digital signal processing (DSP) and more particularly to processing functions used in audio algorithms.
2. Discussion of Background Art
An Inverse Discrete Cosine Transformation (IDCT), which transforms data from the frequency domain to the time domain, requires a pre-multiplication, an inverse Fast Fourier Transformation (IFFT), and a post-multiplication. IDCT is used as one of the last stages of the Dolby®'s third generation audio coding (AC3) decompressing process.
Performing a 128-point IFFT requires 64*7 (=448) radix 2 butterflies, each defined byA′=A−BC and B′=A+BC, where A, A′, B, B′ and C are complex numbers in the form of D=dr+jdi. A subscript r denotes the real part, and a subscript i denotes the imaginary part of the complex number.
FIG. 1 shows an audio integrated circuit chip 100 that includes a DSP 102, a Random Access Memory (RAM) 106, a Read Only Memory (ROM) 110, and an Input/Output (I/O) interface 114. DSP 102 provides the main digital signal processing for chip 100 including, for example, filtering and transforming audio samples. RAM 106 is a “memory on chip” used by programs running on DSP 102 to store data relating to input audio samples and the processing performed on those samples. ROM 110 stores additional data for DSP 102. I/O interface 114 implements various protocols for exchanging, via databus 4005, audio samples with external devices such as analog-to-digital (A/D) and digital-to-analog (D/A) converters, etc.
As audio AC3 and surround sound features are added to chip 100, DSP 102 cannot perform as fast as desired, that is, it cannot execute as many million instructions per second (MIPs) as are required to do all of the tasks demanded by chip 100, including, for example, receiving AC3 data, detecting AC3 data error, using IDCT to decode data, and performing audio enhancement and 3D features. One approach to improving DSP 102 performance, or to conserving DSP 102 MIPs for other desired functions, accelerates the AC3 decompressing stage. However, this approach requires operations that are tightly coupled with the AC3 algorithm, which in turn requires that a designer be intimately familiar with the AC3 decoding process. Further, the approach is useful for accelerating AC3, but provides no benefits for other audio functions or Moving Picture Expert Group (MPEG) functions.
Therefore, what is needed is a mechanism to efficiently improve performance of DSP 102, and thereby performance of chip 100.